﻿Imports AjaxControlToolkit
Imports ControladorasAT.SIREOS
Imports ServiciosAT
Imports Utilitarios
Imports System.Data

Partial Class Pages_Default
    Inherits System.Web.UI.Page

#Region "-- Metodos --"

    Private Sub activarCamposEquipo(est As Boolean)
        ddlbFamilia.Enabled = est
        ddlbTipoEquipo.Enabled = est
        ddlbMarca.Enabled = est
        ddlbModelo.Enabled = est
    End Sub

    Private Sub cargarDatosOrdenServicio()
        Dim oOrden As New SireosWSServicio.OrdenServicio
        oOrden.codOrden = Convert.ToInt32(lblOrden.Text)

        Dim oCtServicio As New CtServicio
        Dim oServicioBE As SireosWSServicio.OrdenServicio = CType(oCtServicio.cargarDatosOrden(oOrden), SireosWSServicio.OrdenServicio)
        If Not (oServicioBE Is Nothing) Then

            LblEstado.Text = oServicioBE.estadoServicio.estado.dscEstado
            lblFecha.Text = Format(CDate(oServicioBE.fecOrden), "dd/MM/yyyy")
            ddlbModalidadServicio.SelectedValue = oServicioBE.modalidadServicio
            ddlbCategoria.SelectedValue = oServicioBE.categoriaServicio
            ddlbPrioridad.SelectedValue = oServicioBE.codPrioridad
            ddlbTipoServicio.SelectedValue = oServicioBE.tipoServicio
            ddlbTipoRevision.SelectedValue = oServicioBE.tipoRevision
            txbCaso.Text = oServicioBE.casoCliente
            txbReferenciaCodigo.Text = oServicioBE.codigoReferencia

            If Not (oServicioBE.codProyecto = Nothing) Then
                ddlbProyecto.SelectedValue = oServicioBE.codProyecto
            End If

            If Not (oServicioBE.codVendedor = Nothing) Then
                ddlbVendedor.SelectedValue = oServicioBE.codVendedor
            End If

            rbTipoCliente.SelectedValue = oServicioBE.sede.cliente.codTipoCLiente
            listarCliente()
            ddlbCliente.SelectedValue = oServicioBE.sede.codCliente
            Listas.listarSedeCliente(ddlbCliente.SelectedValue, ddlbSedeCliente)
            ddlbSedeCliente.SelectedValue = oServicioBE.codSede
            Listas.ListarContactosSedes(ddlbSedeCliente.SelectedValue, ddlbContactoCliente)
            txbDocumento.Text = oServicioBE.sede.cliente.nroDocumento
            If Not (oServicioBE.codContactoCliente = Nothing) Then
                ddlbContactoCliente.SelectedValue = oServicioBE.codContactoCliente
            End If

            Dim oSede As New SireosWSCliente.Sede
            oSede.codSede = oServicioBE.codCourier

            Dim oCtCliente As New CtCliente
            Dim oSedeBE As SireosWSCliente.Sede = CType(oCtCliente.cargarDatosCliente(oSede), SireosWSCliente.Sede)
            If Not (oSedeBE Is Nothing) Then
                ddlbCourier.SelectedValue = oSedeBE.codCliente
                Listas.listarSedeCliente(ddlbCourier.SelectedValue, ddlbSedeCourier)
                ddlbSedeCourier.SelectedValue = oServicioBE.codCourier
                Listas.ListarContactosSedes(ddlbSedeCourier.SelectedValue, ddlbContactoCourier)
                ddlbContactoCourier.SelectedValue = oServicioBE.codContactoCourier
            End If

            LblCodigoEquipo.Text = oServicioBE.codEquipo
            txbSerieEquipo.Text = oServicioBE.equipo.serEquipo
            imgBuscarSerieEquipo.Visible = False
            txbSerieEquipo.Enabled = False

            ddlbFamilia.SelectedValue = oServicioBE.equipo.modelo.tipoEquipo.codFamilia
            Listas.listarTipoEquipo(ddlbFamilia.SelectedValue, ddlbTipoEquipo)
            ddlbTipoEquipo.SelectedValue = oServicioBE.equipo.modelo.tipoEquipo.codTipoEquipo
            Listas.listarMarcasTipoEquipo(ddlbMarca, ddlbTipoEquipo.SelectedValue)
            ddlbMarca.SelectedValue = oServicioBE.equipo.modelo.codMarca
            Listas.listarModelos(ddlbModelo, ddlbTipoEquipo.SelectedValue, ddlbMarca.SelectedValue)
            ddlbModelo.SelectedValue = oServicioBE.equipo.codModelo
            txbPartNumber.Text = oServicioBE.equipo.modelo.partNumber
            ddlbLicencia.SelectedValue = oServicioBE.equipo.codLicencia
            cbEquipoRobo.Checked = Convert.ToBoolean(oServicioBE.equipo.robEquipo)

            ddlbFalla.SelectedValue = oServicioBE.codFalla
            txbFalla.Text = oServicioBE.detFalla
            txbObservaciones.Text = oServicioBE.obsOrden

        End If
    End Sub

    Private Sub cargarModoPagina()
        If Not (Valores.modo Is Nothing) Then
            Dim modo As String = Me.Page.Request.Params(Valores.modo.ToString)
            ddlbModalidadServicio.SelectedValue = Valores.modalidadServicio.OnSite
            lblOrden.Text = Me.Page.Request.Params(Valores.OrdenServicio.CodOrden.ToString)
            Select Case modo
                Case Valores.ModoPagina.Nuevo.ToString
                Case Valores.modoPagina.Editar.ToString
                    cargarDatosOrdenServicio()
                    pnAgenda.Visible = False
                    LblCondicionEstado.Visible = False
                    ddlbEstadoOnSite.Visible = False
                    ibtnGrabar.Visible = False
                    ibtnModificar.Visible = True
                    pnGeneralOrden.Visible = True
                    ibtnEditarEquipo.Visible = True
                Case Valores.ModoPagina.Consulta.ToString
                    cargarDatosOrdenServicio()
                    LblCondicionEstado.Visible = False
                    ddlbEstadoOnSite.Visible = False
                    ibtnBuscarCliente.Visible = False
                    ibtnNuevoCliente.Visible = False
                    ibtnBuscarDocumento.Visible = False
                    imgBuscarSerieEquipo.Visible = False
                    imgBuscarPartNumber.Visible = False
                    ibtnModificar.Visible = False
                    ibtnImprimir.Visible = False
                    ibtnGrabar.Visible = False
                    pnAgenda.Visible = False
                    pnGeneralOrden.Visible = True
                    pnAgenda.Visible = False

                    ddlbCategoria.Enabled = False
                    ddlbTipoServicio.Enabled = False
                    ddlbTipoRevision.Enabled = False
                    ddlbPrioridad.Enabled = False
                    ddlbProyecto.Enabled = False
                    ddlbVendedor.Enabled = False
                    txbCaso.Enabled = False
                    txbReferenciaCodigo.Enabled = False
                    rbTipoCliente.Enabled = False
                    ddlbCliente.Enabled = False
                    ddlbSedeCliente.Enabled = False
                    ddlbContactoCliente.Enabled = False
                    txbDocumento.Enabled = False
                    ddlbCourier.Enabled = False
                    ddlbSedeCourier.Enabled = False
                    ddlbContactoCourier.Enabled = False
                    ddlbFalla.Enabled = False
                    txbFalla.Enabled = False
                    txbObservaciones.Enabled = False
                    ddlbLicencia.Enabled = False
                    txbPartNumber.Enabled = False
                    cbEquipoRobo.Enabled = False
            End Select
        End If

    End Sub

    Private Sub habilitarAgenda(est As Boolean)
        txbFechaAgenda.Enabled = est
        txbHora.Enabled = est
    End Sub

    Private Function buscarEquipo() As SireosWSEquipo.Equipo
        Dim oEquipoBE As New SireosWSEquipo.Equipo
        oEquipoBE.serEquipo = txbSerieEquipo.Text
        Dim oCtEquipo As New CtEquipo
        Dim oEquipoBER As SireosWSEquipo.Equipo = CType(oCtEquipo.buscarSerieEquipo(oEquipoBE), SireosWSEquipo.Equipo)
        If Not (oEquipoBER Is Nothing) Then
            LblCodigoEquipo.Text = oEquipoBER.codEquipo
            Return oEquipoBER
        Else
            LblCodigoEquipo.Text = Valores.vacio
            Return Nothing
        End If
    End Function

    Private Sub limpiarCamposEquipo()
        txbSerieEquipo.Enabled = True
        ddlbFamilia.SelectedValue = Valores.numero.Cero
        Listas.listarTipoEquipo(ddlbFamilia.SelectedValue, ddlbTipoEquipo)
        Listas.listarMarcasTipoEquipo(ddlbMarca, ddlbTipoEquipo.SelectedValue)
        Listas.listarModelos(ddlbModelo, ddlbTipoEquipo.SelectedValue, ddlbMarca.SelectedValue)
        txbPartNumber.Text = Valores.vacio
        LblCodigoEquipo.Text = Valores.vacio
        ddlbLicencia.SelectedValue = Valores.numero.Cero
        cbEquipoRobo.Checked = False
    End Sub

    Private Sub listarTipoCliente()
        Dim oTablaDetalle As New SireosWSComun.TablaDetalle
        oTablaDetalle.codCabecera = Valores.Tabla.TipoCliente

        Dim oCtComun As New CtComun
        Dim dt As DataTable = oCtComun.listarTablaDetalle(oTablaDetalle)
        With rbTipoCliente
            .DataSource = dt
            If Not (dt Is Nothing) Then
                .DataValueField = "CodDetalle"
                .DataTextField = "NomDetalle"
            End If
            .DataBind()
        End With
    End Sub

    Private Sub listarCliente()
        Dim oCliente As New SireosWSCliente.Cliente
        If rbTipoCliente.SelectedValue = Valores.vacio Then
            oCliente.codTipoCLiente = 0
        Else
            oCliente.codTipoCLiente = rbTipoCliente.SelectedValue
        End If
        Dim oCtCliente As New CtCliente
        Dim dt As DataTable = oCtCliente.listarClientes(oCliente)
        With ddlbCliente
            .Items.Clear()
            .DataSource = dt
            If Not (dt Is Nothing) Then
                .DataTextField = "Cliente"
                .DataValueField = "CodCliente"
            End If
            .DataBind()
            .Items.Insert(0, New ListItem("-- Seleccione --", 0))
        End With
    End Sub

    Private Sub obtenerPartNumber()
        If ddlbModelo.SelectedValue > 0 Then
            Dim oModelo As New SireosWSEquipo.Modelo
            oModelo.codModelo = ddlbModelo.SelectedValue

            Dim oCtEquipo As New CtEquipo
            txbPartNumber.Text = oCtEquipo.obtenerPartNumber(oModelo)
        End If
    End Sub

    Private Function validarCampos() As Boolean
        If ddlbCategoria.SelectedValue = Valores.Numero.Cero Then
            Valores.mensajevar = Mensajes.seleccionarCategoriaServicio
            Return False
        ElseIf ddlbTipoServicio.SelectedValue = Valores.Numero.Cero Then
            Valores.mensajevar = Mensajes.seleccionarTipoServicio
            Return False
        ElseIf ddlbModalidadServicio.SelectedValue = Valores.Numero.Cero Then
            Valores.mensajevar = Mensajes.seleccionarModalidadServicio
            Return False
        ElseIf ddlbPrioridad.SelectedValue = Valores.Numero.Cero Then
            Valores.mensajevar = Mensajes.seleccionarPrioridad
            Return False
        ElseIf ddlbEstadoOnSite.SelectedValue = Valores.numero.Cero And ddlbEstadoOnSite.Visible = True Then
            Valores.mensajevar = Mensajes.seleccionarEstado
            Return False
        ElseIf ddlbTipoRevision.SelectedValue = Valores.Numero.Cero Then
            Valores.mensajevar = Mensajes.seleccionarTipoRevision
            Return False
        ElseIf ddlbCliente.SelectedValue = Valores.numero.Cero Then
            Valores.mensajevar = Mensajes.seleccionarCliente
            Return False
        ElseIf ddlbSedeCliente.SelectedValue = Valores.numero.Cero Then
            Valores.mensajevar = Mensajes.seleccionarSede
            Return False
        ElseIf cbAgendar.Checked = True And txbFechaAgenda.Text = Valores.vacio Then
            Valores.mensajevar = Mensajes.ingresarFecha
            Return False
        ElseIf cbAgendar.Checked = True And txbHora.Text = Valores.vacio Then
            Valores.mensajevar = Mensajes.ingresarHora
            Return False
        Else
            Return True
        End If
    End Function

    Private Sub agendarServicio()
        If cbAgendar.Checked = True And cbAgendar.Visible = True Then
            If LblCodigoAgenda.Text = Valores.vacio Then
                Dim oAgenda As New SireosWSAtencion.OrdenServicioAtencion
                Dim fecha As String = Format(txbFechaAgenda.Text, "yyyy-MM-dd").ToString + " " + Format(txbHora.Text, "HH:mm")
                oAgenda.codOrden = lblOrden.Text
                oAgenda.fecProgramada = fecha
                oAgenda.usuRegistro = Session("CodigoUsuario")
                Dim oCtAgenda As New CtAtencion
                LblCodigoAgenda.Text = oCtAgenda.registrarAgendaOrden(oAgenda)
                pnAgenda.Enabled = True
                If LblCodigoAgenda.Text = 0 Then
                    LblAlerta.Visible = True
                End If
            End If
        End If
    End Sub

#End Region

#Region "Popup"

    Protected Sub ibtnNuevoCliente_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnNuevoCliente.Click
        ClienteRegistro1.limpiarCampos()
        popupNuevoCliente.Show()
    End Sub

    Protected Sub ibtnCerrarRegistroCliente_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnCerrarRegistroCliente.Click
        If Not (Session("CodigoTipoCliente") Is Nothing) Then
            If Session("CodigoTipoCliente").ToString <> Valores.vacio Then
                If Session("CodigoTipoCliente").ToString > 0 Then
                    rbTipoCliente.SelectedValue = Session("CodigoTipoCliente")
                    listarCliente()
                    txbDocumento.Text = Session("NroDocumento")
                    ddlbCliente.SelectedValue = Session("CodigoCliente")
                    ibtnNuevaSede.Visible = True
                    Listas.listarSedeCliente(ddlbCliente.SelectedValue, ddlbSedeCliente)
                    ddlbSedeCliente.SelectedValue = Session("CodigoSede")
                    ibtnEditarSede.Visible = True
                    ibtnNuevoContacto.Visible = True
                    If Session("CodigoContacto") <> Valores.vacio Then
                        ddlbContactoCliente.SelectedValue = Session("CodigoContacto")
                        ibtnEditarContacto.Visible = False
                    End If
                End If
            End If
            Session("CodigoTipoCliente") = Valores.vacio
            Session("CodigoCliente") = Valores.vacio
            Session("CodigoSede") = Valores.vacio
            Session("CodigoContacto") = Valores.vacio
            Session("NroDocumento") = Valores.vacio
        End If
        popupNuevoCliente.Hide()
    End Sub

    Protected Sub ibtnBuscarCliente_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnBuscarCliente.Click
        popupBuscarCliente.Show()
    End Sub

    Protected Sub ibtnCerrarBuscarCliente_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnCerrarBuscarCliente.Click
        If Not (Session("CodigoTipoCliente") Is Nothing) Then
            If Session("CodigoTipoCliente").ToString <> Valores.vacio Then
                If Session("CodigoTipoCliente").ToString > 0 Then
                    rbTipoCliente.SelectedValue = Session("CodigoTipoCliente")
                    listarCliente()
                    txbDocumento.Text = Session("NroDocumento")
                    ddlbCliente.SelectedValue = Session("CodigoCliente")
                    Listas.listarSedeCliente(ddlbCliente.SelectedValue, ddlbSedeCliente)
                    ddlbSedeCliente.SelectedValue = Session("CodigoSede")
                End If
            End If
            Session("CodigoTipoCliente") = Valores.vacio
            Session("CodigoCliente") = Valores.vacio
            Session("CodigoSede") = Valores.vacio
            Session("CodigoContacto") = Valores.vacio
            Session("NroDocumento") = Valores.vacio
        End If
        popupBuscarCliente.Hide()
    End Sub

    Protected Sub ibtnNuevaSede_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnNuevaSede.Click
        If ddlbCliente.SelectedValue > 0 Then
            Session("CodigoCliente") = ddlbCliente.SelectedValue
            SedeRegistro1.limpiarCampos()
            popupNuevaSede.Show()
        End If
    End Sub

    Protected Sub ibtnEditarSede_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnEditarSede.Click
        Session("CodigoCliente") = ddlbCliente.SelectedValue
        Session("CodigoSede") = ddlbSedeCliente.SelectedValue
        SedeRegistro1.cargarDatosSede()
        popupNuevaSede.Show()
    End Sub

    Protected Sub ibtnCerrarSede_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnCerrarSede.Click
        If Session("CodigoSede") <> Valores.vacio Then
            Listas.listarSedeCliente(ddlbCliente.SelectedValue, ddlbSedeCliente)
            ddlbSedeCliente.SelectedValue = Session("CodigoSede")
            ibtnEditarSede.Visible = True
            ibtnNuevoContacto.Visible = True
        End If
        Session("CodigoSede") = Valores.vacio
        Session("CodigoCliente") = Valores.vacio
        popupNuevaSede.Hide()
    End Sub

    Protected Sub ibtnNuevoContacto_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnNuevoContacto.Click
        Session("CodigoSede") = ddlbSedeCliente.SelectedValue
        ContactoRegistro1.limpiarCampos()
        popupNuevoContacto.Show()
    End Sub

    Protected Sub ibtnEditarContacto_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnEditarContacto.Click
        Session("CodigoSede") = ddlbSedeCliente.SelectedValue
        Session("CodigoContacto") = ddlbContactoCliente.SelectedValue
        ContactoRegistro1.cargarDatosContacto()
        popupNuevoContacto.Show()
    End Sub

    Protected Sub ibtnCerrarContacto_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnCerrarContacto.Click
        If Session("CodigoContacto") <> Valores.vacio Then
            Listas.ListarContactosSedes(ddlbSedeCliente.SelectedValue, ddlbContactoCliente)
            ddlbContactoCliente.SelectedValue = Session("CodigoContacto")
        End If
        popupNuevoContacto.Hide()
        Session("CosigoSede") = Valores.vacio
        Session("CodigoContacto") = Valores.vacio
    End Sub

    Protected Sub ibtnRpuestos_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnRpuestos.Click
        popupSolicitudRepuesto.Show()
    End Sub

    Protected Sub ibtnCerrarRepuestos_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnCerrarRepuestos.Click
        popupSolicitudRepuesto.Hide()
    End Sub

#End Region

    Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            Listas.listarTabla(Valores.tabla.CategoriaServicio, ddlbCategoria)
            Listas.listarTabla(Valores.tabla.TipoServicio, ddlbTipoServicio)
            Listas.listarGarantias(ddlbTipoServicio.SelectedValue, ddlbGarantia)
            Listas.listarTabla(Valores.tabla.ModalidadServicio, ddlbModalidadServicio)
            Listas.listarTabla(Valores.tabla.TipoRevision, ddlbTipoRevision)
            Listas.listarPrioridad(ddlbPrioridad)
            Listas.listarProyecto(ddlbProyecto)
            Listas.listarVendedores(ddlbVendedor)
            Listas.listarTabla(Valores.tabla.Licencia, ddlbLicencia)
            Listas.listarTabla(Valores.tabla.EstadoInicialOS, ddlbEstadoOnSite)

            Listas.listarTienda(ddlbCourier)
            Listas.listarSedeCliente(ddlbCourier.SelectedValue, ddlbSedeCourier)
            Listas.ListarContactosSedes(ddlbSedeCourier.SelectedValue, ddlbContactoCourier)

            Listas.listarFallas(ddlbFalla)
            listarTipoCliente()
            listarCliente()
            Listas.listarSedeCliente(ddlbCliente.SelectedValue, ddlbSedeCliente)
            Listas.ListarContactosSedes(ddlbSedeCliente.SelectedValue, ddlbContactoCliente)

            activarCamposEquipo(False)
            Listas.listarFamilias(ddlbFamilia)
            Listas.listarTipoEquipo(ddlbFamilia.SelectedValue, ddlbTipoEquipo)
            Listas.listarMarcasTipoEquipo(ddlbMarca, ddlbTipoEquipo.SelectedValue)
            Listas.listarModelos(ddlbModelo, ddlbTipoEquipo.SelectedValue, ddlbMarca.SelectedValue)
            obtenerPartNumber()
            cargarModoPagina()
        End If
    End Sub

    Protected Sub ddlbTipoServicio_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlbTipoServicio.SelectedIndexChanged
        Listas.listarGarantias(ddlbTipoServicio.SelectedValue, ddlbGarantia)
    End Sub

    Protected Sub ddlbEstadoOnSite_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlbEstadoOnSite.SelectedIndexChanged
        cbAgendar.Checked = False
        If ddlbEstadoOnSite.SelectedValue > 2 Then
            pnAgenda.Visible = True
            ddlbModalidadServicio.SelectedValue = Valores.modalidadServicio.OnSite
        Else
            pnAgenda.Visible = False
            ddlbModalidadServicio.SelectedValue = Valores.modalidadServicio.CarryIn
        End If
    End Sub

    Protected Sub rbTipoCliente_SelectedIndexChanged(sender As Object, e As EventArgs) Handles rbTipoCliente.SelectedIndexChanged
        If rbTipoCliente.SelectedValue = Valores.tipoCliente.Empresa Then
            listarCliente()
        ElseIf rbTipoCliente.SelectedValue = Valores.tipoCliente.Persona Then
            listarCliente()
        End If
    End Sub

    Protected Sub ibtnBuscarDocumento_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnBuscarDocumento.Click
        If txbDocumento.Text = Valores.vacio Then
            Helper.mensajePanel(uppRegistroOrden, Mensajes.ingresarNroDocumento)
        Else
            Dim oClienteBE As New SireosWSServicio.Cliente
            oClienteBE.nroDocumento = txbDocumento.Text

            Dim oCtServicio As New CtServicio
            Dim oClienteServicio As SireosWSServicio.Cliente = CType(oCtServicio.buscarCliente(oClienteBE), SireosWSServicio.Cliente)

            If Not (oClienteServicio Is Nothing) Then
                rbTipoCliente.SelectedValue = oClienteServicio.codTipoCLiente
                listarCliente()
                ddlbCliente.SelectedValue = oClienteServicio.codCliente
                Listas.listarSedeCliente(ddlbCliente.SelectedValue, ddlbSedeCliente)
                Listas.ListarContactosSedes(ddlbSedeCliente.SelectedValue, ddlbContactoCliente)
                ibtnEditarSede.Visible = False
                ibtnNuevoContacto.Visible = False
                ibtnEditarContacto.Visible = False
            Else
                Helper.mensajePanel(uppRegistroOrden, Mensajes.noExisteDocumento)
            End If
        End If
    End Sub

    Protected Sub ddlbCliente_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlbCliente.SelectedIndexChanged
        ibtnNuevaSede.Visible = False
        ibtnEditarSede.Visible = False
        ibtnNuevoContacto.Visible = False
        ibtnEditarContacto.Visible = False
        Listas.listarSedeCliente(ddlbCliente.SelectedValue, ddlbSedeCliente)
        Listas.ListarContactosSedes(ddlbSedeCliente.SelectedValue, ddlbContactoCliente)
        If ddlbCliente.SelectedValue > 0 Then
            ibtnNuevaSede.Visible = True
        End If
    End Sub

    Protected Sub ddlbSedeCliente_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlbSedeCliente.SelectedIndexChanged
        ibtnEditarSede.Visible = False
        ibtnNuevoContacto.Visible = False
        ibtnEditarContacto.Visible = False
        Listas.ListarContactosSedes(ddlbSedeCliente.SelectedValue, ddlbContactoCliente)
        If ddlbSedeCliente.SelectedValue > 0 Then
            ibtnEditarSede.Visible = True
            ibtnNuevoContacto.Visible = True
        End If
    End Sub

    Protected Sub ddlbContactoCliente_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlbContactoCliente.SelectedIndexChanged
        ibtnEditarContacto.Visible = False
        If ddlbContactoCliente.SelectedValue > 0 Then
            ibtnEditarContacto.Visible = True
        End If
    End Sub

    Protected Sub ddlbCourier_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlbCourier.SelectedIndexChanged
        Listas.listarSedeCliente(ddlbCourier.SelectedValue, ddlbSedeCourier)
        Listas.ListarContactosSedes(ddlbSedeCourier.SelectedValue, ddlbContactoCourier)
    End Sub

    Protected Sub ddlbSedeCourier_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlbSedeCourier.SelectedIndexChanged
        Listas.ListarContactosSedes(ddlbSedeCourier.SelectedValue, ddlbContactoCourier)
    End Sub

    Protected Sub cbAgendar_CheckedChanged(sender As Object, e As EventArgs) Handles cbAgendar.CheckedChanged
        If cbAgendar.Checked = True Then
            habilitarAgenda(True)
        Else
            habilitarAgenda(False)
        End If
    End Sub

    Protected Sub imgBuscarSerieEquipo_Click(sender As Object, e As ImageClickEventArgs) Handles imgBuscarSerieEquipo.Click
        If txbSerieEquipo.Text = Valores.vacio Then
            Helper.mensajePanel(uppRegistroOrden, Mensajes.ingresarSerie)
        Else
            If txbSerieEquipo.Text <> Valores.equipoSerieBorrosa And txbSerieEquipo.Text <> Valores.equipoSinSerie Then
                Dim oEquipoBER As SireosWSEquipo.Equipo = buscarEquipo()
                If oEquipoBER Is Nothing Then
                    activarCamposEquipo(True)
                    limpiarCamposEquipo()
                    Helper.mensajePanel(uppRegistroOrden, Mensajes.noExisteSerieEquipo)
                    ibtnEditarEquipo.Visible = False
                Else
                    txbSerieEquipo.Enabled = False
                    ddlbFamilia.SelectedValue = oEquipoBER.modelo.tipoEquipo.codFamilia
                    Listas.listarTipoEquipo(ddlbFamilia.SelectedValue, ddlbTipoEquipo)
                    ddlbTipoEquipo.SelectedValue = oEquipoBER.modelo.codTipoEquipo
                    Listas.listarMarcasTipoEquipo(ddlbMarca, ddlbTipoEquipo.SelectedValue)
                    ddlbMarca.SelectedValue = oEquipoBER.modelo.codMarca
                    Listas.listarModelos(ddlbModelo, ddlbTipoEquipo.SelectedValue, ddlbMarca.SelectedValue)
                    ddlbModelo.SelectedValue = oEquipoBER.codModelo
                    txbPartNumber.Text = oEquipoBER.modelo.partNumber
                    ibtnEditarEquipo.Visible = True
                End If
            End If
        End If
    End Sub

    Protected Sub ibtnEditarEquipo_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnEditarEquipo.Click
        activarCamposEquipo(True)
    End Sub

    Protected Sub ddlbFamilia_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlbFamilia.SelectedIndexChanged
        Listas.listarTipoEquipo(ddlbFamilia.SelectedValue, ddlbTipoEquipo)
        ddlbTipoEquipo.Enabled = True
    End Sub

    Protected Sub ddlbTipoquipo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlbTipoEquipo.SelectedIndexChanged
        Listas.listarMarcasTipoEquipo(ddlbMarca, ddlbTipoEquipo.SelectedValue)
        ddlbMarca.Enabled = True
    End Sub

    Protected Sub ddlbMarca_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlbMarca.SelectedIndexChanged
        Listas.listarModelos(ddlbModelo, ddlbTipoEquipo.SelectedValue, ddlbMarca.SelectedValue)
        ddlbModelo.Enabled = True
    End Sub

    Protected Sub ddlbModelo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlbModelo.SelectedIndexChanged
        obtenerPartNumber()
    End Sub

    Protected Sub imgBuscarPartNumber_Click(sender As Object, e As ImageClickEventArgs) Handles imgBuscarPartNumber.Click
        If txbPartNumber.Text = Valores.vacio Then
            Helper.mensajePanel(uppRegistroOrden, Mensajes.ingresarPartNumber)
        Else
            Dim oModelo As New SireosWSEquipo.Modelo
            oModelo.partNumber = txbPartNumber.Text
            Dim oCtEquipo As New CtEquipo
            Dim oModeloBE As SireosWSEquipo.Modelo = CType(oCtEquipo.buscarPartNumber(oModelo), SireosWSEquipo.Modelo)
            If Not (oModeloBE Is Nothing) Then
                ddlbFamilia.SelectedValue = oModeloBE.tipoEquipo.codFamilia
                Listas.listarTipoEquipo(ddlbFamilia.SelectedValue, ddlbTipoEquipo)
                ddlbTipoEquipo.SelectedValue = oModeloBE.codTipoEquipo
                Listas.listarMarcasTipoEquipo(ddlbMarca, ddlbTipoEquipo.SelectedValue)
                ddlbMarca.SelectedValue = oModeloBE.codMarca
                Listas.listarModelos(ddlbModelo, ddlbTipoEquipo.SelectedValue, ddlbMarca.SelectedValue)
                ddlbModelo.SelectedValue = oModeloBE.codModelo
                txbPartNumber.Text = oModeloBE.partNumber
            Else
                Helper.mensajePanel(uppRegistroOrden, Mensajes.noExistePartNumber)
            End If
        End If
    End Sub

    Protected Sub ibtnGrabar_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnGrabar.Click
        LblAlerta.Visible = False
        If validarCampos() = True Then
            Dim usureg As Integer = Session("CodigoUsuario")
            Dim oEquipoBE As New SireosWSEquipo.Equipo
            oEquipoBE.serEquipo = txbSerieEquipo.Text
            oEquipoBE.codModelo = Convert.ToInt32(ddlbModelo.SelectedValue)
            oEquipoBE.cabLicencia = Valores.tabla.Licencia
            oEquipoBE.codLicencia = ddlbLicencia.SelectedValue
            oEquipoBE.robEquipo = Convert.ToInt32(cbEquipoRobo.Checked)
            oEquipoBE.usuRegistro = usureg

            Dim oCtEquipo As New CtEquipo
            If txbSerieEquipo.Text = Valores.equipoSinSerie Or txbSerieEquipo.Text = Valores.equipoSerieBorrosa Then
                If LblCodigoEquipo.Text = Valores.vacio Then
                    LblCodigoEquipo.Text = oCtEquipo.registrarEquipo(oEquipoBE)
                Else
                    oEquipoBE.codEquipo = LblCodigoEquipo.Text
                    oCtEquipo.modificarEquipo(oEquipoBE)
                End If
            Else
                'verifica la existencia de un equipo en una orden aperturada
                Dim oco As Integer = oCtEquipo.validarEquipoOrden(oEquipoBE)
                If oco > 0 Then
                    If lblOrden.Text <> oco.ToString Then
                        Helper.mensajePanel(uppRegistroOrden, Mensajes.existeOrdenEquipo)
                        Exit Sub
                    End If
                End If

                Dim antcod As Integer
                If LblCodigoEquipo.Text <> Valores.vacio Then
                    antcod = LblCodigoEquipo.Text
                End If

                If buscarEquipo() Is Nothing Then
                    LblCodigoEquipo.Text = oCtEquipo.registrarEquipo(oEquipoBE)
                Else
                    If txbSerieEquipo.Enabled = True And antcod = LblCodigoEquipo.Text Then
                        oEquipoBE.codEquipo = LblCodigoEquipo.Text
                        oCtEquipo.modificarEquipo(oEquipoBE)
                    End If
                End If

            End If

            If LblCodigoEquipo.Text > 0 Then
                Dim oOrden As New SireosWSServicio.OrdenServicio

                Dim oEstadoServicio As New SireosWSServicio.EstadoServicio
                oEstadoServicio.codUbicacion = Valores.ubicacionFisica.Cliente
                oEstadoServicio.codEstado = Convert.ToInt32(ddlbEstadoOnSite.SelectedValue)
                oOrden.estadoServicio = oEstadoServicio

                oOrden.codPrioridad = Convert.ToInt32(ddlbPrioridad.SelectedValue)
                oOrden.codSede = Convert.ToInt32(ddlbSedeCliente.SelectedValue)
                oOrden.codContactoCliente = Convert.ToInt32(ddlbContactoCliente.SelectedValue)
                oOrden.codCourier = Convert.ToInt32(ddlbSedeCourier.SelectedValue)
                oOrden.codContactoCourier = Convert.ToInt32(ddlbContactoCourier.SelectedValue)
                oOrden.codEquipo = Convert.ToInt32(LblCodigoEquipo.Text)
                oOrden.codFalla = Convert.ToInt32(ddlbFalla.SelectedValue)
                oOrden.codGarantia = Convert.ToInt32(ddlbgarantia.selectedvalue)
                oOrden.codProyecto = Convert.ToInt32(ddlbProyecto.SelectedValue)
                oOrden.codVendedor = Convert.ToInt32(ddlbVendedor.SelectedValue)
                oOrden.cabCategoriaServicio = Valores.tabla.CategoriaServicio
                oOrden.categoriaServicio = Convert.ToInt32(ddlbCategoria.SelectedValue)
                oOrden.cabModalidadServicio = Valores.tabla.ModalidadServicio
                oOrden.modalidadServicio = Convert.ToInt32(ddlbModalidadServicio.SelectedValue)
                oOrden.cabTipoRevision = Valores.tabla.TipoRevision
                oOrden.tipoRevision = Convert.ToInt32(ddlbTipoRevision.SelectedValue)
                oOrden.cabTipoServicio = Valores.tabla.TipoServicio
                oOrden.tipoServicio = Convert.ToInt32(ddlbTipoServicio.SelectedValue)
                oOrden.casoCliente = txbCaso.Text
                oOrden.codigoReferencia = txbReferenciaCodigo.Text
                oOrden.detFalla = txbFalla.Text
                oOrden.obsOrden = txbObservaciones.Text
                oOrden.usuRegistro = usureg

                Dim oCtServicio As New CtServicio

                If lblOrden.Text = Valores.vacio Then
                    lblOrden.Text = oCtServicio.registrarOrdenServicio(oOrden)
                    If lblOrden.Text > 0 Then
                        agendarServicio()
                        Helper.mensajePanel(uppRegistroOrden, Mensajes.correctoGrabado)
                        ibtnImprimir.Visible = True
                        If ddlbTipoServicio.SelectedValue = Valores.tipoServicio.GarantiaMarca Then
                            ibtnRpuestos.Visible = True
                        End If
                    Else
                        Helper.mensajePanel(uppRegistroOrden, Mensajes.errorGrabar)
                    End If
                Else
                    oOrden.codOrden = lblOrden.Text
                    If oCtServicio.modificarOrdenServicio(oOrden) Is Nothing Then
                        Helper.mensajePanel(uppRegistroOrden, Mensajes.errorModificar)
                    Else
                        agendarServicio()
                        Helper.mensajePanel(uppRegistroOrden, Mensajes.correctoModificado)
                    End If
                End If
            Else
                Helper.mensajePanel(uppRegistroOrden, Mensajes.errorGrabar)
            End If
        Else
            Helper.mensajePanel(uppRegistroOrden, Valores.mensajevar)
        End If
    End Sub

    Protected Sub ibtnCancelar_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnCancelar.Click
        Response.Redirect("OrdenServicioListado.aspx")
    End Sub

    Protected Sub ibtnModificar_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnModificar.Click
        ibtnGrabar_Click(sender, e)
    End Sub

    Protected Sub ibtnImprimir_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnImprimir.Click

    End Sub

    Protected Sub ibtnLimpiar_Click(sender As Object, e As ImageClickEventArgs) Handles ibtnLimpiar.Click
        txbSerieEquipo.Text = Valores.vacio
        limpiarCamposEquipo()
    End Sub

End Class